package GUI.Cliente;

import  java.util.Date;

import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;

import GUI.Administracion.Exceptions.ExcepcionesMenuVentas;
import client.entities.ClientVO;

public class AddClient extends Dialog {

	protected Object result;
	protected Shell shell;
	private Text nombre;
	private Text cedula;
	private Text telefono;
	private Text apellido;
	private Text celular;
	private Text dia;
	private Text mes;
	private Text ano;
	private Label lblDireccion;
	private Text direccion;
	private Label error;

	/**
	 * Create the dialog.
	 * @param parent
	 * @param style
	 */
	public AddClient(Shell parent, int style) {
		super(parent, style);
		setText("SWT Dialog");
	}

	/**
	 * Open the dialog.
	 * @return the result
	 */
	public Object open() {
		createContents();
		shell.open();
		shell.layout();
		Display display = getParent().getDisplay();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
		return result;
	}

	/**
	 * Create contents of the dialog.
	 */
	private void createContents() {
		shell = new Shell(getParent(), getStyle());
		shell.setSize(524, 320);
		shell.setText(getText());
		shell.setLayout(new FormLayout());
		
		Label lblNombre = new Label(shell, SWT.NONE);
		FormData fd_lblNombre = new FormData();
		fd_lblNombre.top = new FormAttachment(0, 53);
		fd_lblNombre.left = new FormAttachment(0, 28);
		lblNombre.setLayoutData(fd_lblNombre);
		lblNombre.setText("Nombre");
		
		Label lblApellido = new Label(shell, SWT.NONE);
		FormData fd_lblApellido = new FormData();
		fd_lblApellido.top = new FormAttachment(lblNombre, 0, SWT.TOP);
		lblApellido.setLayoutData(fd_lblApellido);
		lblApellido.setText("Apellido");
		
		Label lblCedula = new Label(shell, SWT.NONE);
		FormData fd_lblCedula = new FormData();
		fd_lblCedula.top = new FormAttachment(lblNombre, 25);
		fd_lblCedula.left = new FormAttachment(lblNombre, 0, SWT.LEFT);
		lblCedula.setLayoutData(fd_lblCedula);
		lblCedula.setText("Cedula");
		
		Label lblTelefonoFijo = new Label(shell, SWT.NONE);
		FormData fd_lblTelefonoFijo = new FormData();
		fd_lblTelefonoFijo.left = new FormAttachment(lblNombre, 0, SWT.LEFT);
		lblTelefonoFijo.setLayoutData(fd_lblTelefonoFijo);
		lblTelefonoFijo.setText("Telefono Fijo");
		
		Label lblCelular_1 = new Label(shell, SWT.NONE);
		FormData fd_lblCelular_1 = new FormData();
		fd_lblCelular_1.top = new FormAttachment(lblTelefonoFijo, 0, SWT.TOP);
		fd_lblCelular_1.right = new FormAttachment(lblApellido, 0, SWT.RIGHT);
		lblCelular_1.setLayoutData(fd_lblCelular_1);
		lblCelular_1.setText("Celular");
		
		nombre = new Text(shell, SWT.BORDER);
		FormData fd_nombre = new FormData();
		fd_nombre.top = new FormAttachment(lblNombre, -3, SWT.TOP);
		fd_nombre.right = new FormAttachment(lblNombre, 185, SWT.RIGHT);
		fd_nombre.left = new FormAttachment(lblNombre, 45);
		nombre.setLayoutData(fd_nombre);
		
		cedula = new Text(shell, SWT.BORDER);
		FormData fd_cedula = new FormData();
		fd_cedula.right = new FormAttachment(nombre, 0, SWT.RIGHT);
		fd_cedula.top = new FormAttachment(nombre, 18);
		fd_cedula.left = new FormAttachment(nombre, 0, SWT.LEFT);
		cedula.setLayoutData(fd_cedula);
		
		telefono = new Text(shell, SWT.BORDER);
		FormData fd_telefono = new FormData();
		fd_telefono.top = new FormAttachment(lblTelefonoFijo, -3, SWT.TOP);
		fd_telefono.left = new FormAttachment(nombre, 0, SWT.LEFT);
		fd_telefono.right = new FormAttachment(nombre, 0, SWT.RIGHT);
		telefono.setLayoutData(fd_telefono);
		
		apellido = new Text(shell, SWT.BORDER);
		fd_lblApellido.right = new FormAttachment(100, -169);
		FormData fd_apellido = new FormData();
		fd_apellido.right = new FormAttachment(lblApellido, 127, SWT.RIGHT);
		fd_apellido.top = new FormAttachment(0, 48);
		fd_apellido.left = new FormAttachment(0, 361);
		apellido.setLayoutData(fd_apellido);
		
		celular = new Text(shell, SWT.BORDER);
		FormData fd_celular = new FormData();
		fd_celular.top = new FormAttachment(lblTelefonoFijo, -3, SWT.TOP);
		fd_celular.left = new FormAttachment(apellido, 0, SWT.LEFT);
		fd_celular.right = new FormAttachment(apellido, 0, SWT.RIGHT);
		celular.setLayoutData(fd_celular);
		
		Label lblRelleneLosSiguientes = new Label(shell, SWT.NONE);
		FormData fd_lblRelleneLosSiguientes = new FormData();
		fd_lblRelleneLosSiguientes.top = new FormAttachment(0, 10);
		fd_lblRelleneLosSiguientes.left = new FormAttachment(0, 178);
		lblRelleneLosSiguientes.setLayoutData(fd_lblRelleneLosSiguientes);
		lblRelleneLosSiguientes.setText("Rellene los Siguientes Campos");
		
		Label lblFechaDeNacimiento = new Label(shell, SWT.NONE);
		fd_lblTelefonoFijo.bottom = new FormAttachment(lblFechaDeNacimiento, -26);
		FormData fd_lblFechaDeNacimiento = new FormData();
		fd_lblFechaDeNacimiento.bottom = new FormAttachment(100, -42);
		fd_lblFechaDeNacimiento.left = new FormAttachment(0, 29);
		lblFechaDeNacimiento.setLayoutData(fd_lblFechaDeNacimiento);
		lblFechaDeNacimiento.setText("Fecha de Nacimiento");
		
		dia = new Text(shell, SWT.BORDER);
		dia.setText("dd");
		FormData fd_dia = new FormData();
		fd_dia.top = new FormAttachment(lblFechaDeNacimiento, -3, SWT.TOP);
		fd_dia.left = new FormAttachment(lblFechaDeNacimiento, 17);
		dia.setLayoutData(fd_dia);
		
		mes = new Text(shell, SWT.BORDER);
		mes.setText("mm");
		FormData fd_mes = new FormData();
		fd_mes.top = new FormAttachment(lblFechaDeNacimiento, -3, SWT.TOP);
		fd_mes.left = new FormAttachment(dia, 6);
		mes.setLayoutData(fd_mes);
		
		ano = new Text(shell, SWT.BORDER);
		ano.setText("aaaa");
		FormData fd_ano = new FormData();
		fd_ano.top = new FormAttachment(lblFechaDeNacimiento, -3, SWT.TOP);
		fd_ano.left = new FormAttachment(mes, 6);
		fd_ano.right = new FormAttachment(100, -259);
		ano.setLayoutData(fd_ano);
		
		Button btnAceptar = new Button(shell, SWT.NONE);
		btnAceptar.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				String n= nombre.getText();
				String a = apellido.getText();
				int c =1;
				boolean p=false;
				try{
				c= Integer.parseInt(cedula.getText());
				}
				catch (Exception exc){
					p=true;
					error.setText( "No es un valor valido de Cedula de Identidad");
					
				}
				if(p==false){
				String bday = dia.getText() + " " + mes.getText() + " " + ano.getText();
				String tel = telefono.getText();
				String cel = celular.getText();
				Date l = new Date();
				
				String dir = direccion.getText();
				ClientVO client=null;
				try{
					client = new ClientVO (c,n,a,dir,tel,cel,l,bday);
				}
				catch  (Exception exc){
					ExcepcionesMenuVentas ventana = new ExcepcionesMenuVentas (shell, shell.getStyle(), exc.getMessage());
					ventana.open();
					shell.dispose();
				}
				
				DatosCliente d = new DatosCliente (shell, shell.getStyle(), client, 0);
				shell.setVisible(false);
				d.open();
				shell.close();
				//int clientId, String name, String lastName, String address, String tel, String cel, Calendar registrationDate, String birthdat
			}}
		});
		FormData fd_btnAceptar = new FormData();
		fd_btnAceptar.left = new FormAttachment(100, -126);
		fd_btnAceptar.bottom = new FormAttachment(100, -10);
		fd_btnAceptar.right = new FormAttachment(100, -27);
		btnAceptar.setLayoutData(fd_btnAceptar);
		btnAceptar.setText("Aceptar");
		
		lblDireccion = new Label(shell, SWT.NONE);
		FormData fd_lblDireccion = new FormData();
		fd_lblDireccion.bottom = new FormAttachment(lblTelefonoFijo, -27);
		fd_lblDireccion.left = new FormAttachment(lblNombre, 0, SWT.LEFT);
		lblDireccion.setLayoutData(fd_lblDireccion);
		lblDireccion.setText("Direccion");
		
		direccion = new Text(shell, SWT.BORDER);
		FormData fd_direccion = new FormData();
		fd_direccion.right = new FormAttachment(nombre, 111, SWT.RIGHT);
		fd_direccion.bottom = new FormAttachment(telefono, -22);
		fd_direccion.left = new FormAttachment(lblDireccion, 37);
		direccion.setLayoutData(fd_direccion);
		
		error = new Label(shell, SWT.NONE);
		FormData fd_error = new FormData();
		fd_error.right = new FormAttachment(mes, 69, SWT.RIGHT);
		fd_error.bottom = new FormAttachment(100, -10);
		fd_error.left = new FormAttachment(lblNombre, 0, SWT.LEFT);
		error.setLayoutData(fd_error);
		error.setText("");
		
	}
}
